花兩天把 Proxy 的設定給介紹完後,今天開始可以來正式用 Burp 來攔截請求跟回應。
首先一樣把 Burp 開起來,瀏覽器的插件選到昨天設定的 Burp。
Burp 到 Proxy 分頁下的 Intercept ,然後把 Intercept 切成 ON ( 藍色底色 )。
接著就可以用瀏覽器去存取網站,Burp 就可以攔截到請求了。
這邊我們用進去 exploit-db 官網來做示範
網址 : www.exploit-db.com
把網址輸入進去網址列後會看到分頁會一直轉圈圈,實際上是因為存取的請求被 Burp 給攔截。
在 Burp 的畫面可以看到下面這樣
封包的資訊寫著這個請求是用 GET 來當請求的方法,Host 是 www.exploit-db.com 。
這時候我們可以把讓請求通過或把請求丟棄。
丟棄的情況 ( 會顯示請求被 drop 掉 ) :
通過的情況 ( 可以正常連到網頁 ) :
註 : 請求封包中的
GET / HTTP/2是表示請求目標路徑是根目錄 (/,網頁的首頁 )
搭配 Hostwww.exploit-db.com就是 exploit-db 的首頁。
當我們針對封包來看的時候可以發現有 pretty . raw跟 hex 三個分類可以選擇。pretty :
美化排版的模式
raw :
原始ASCII純文字的模式 ( 大家好像比較常用這個模式來檢視 )
hex :
用 16 進制對應 ASCII 的模式
這邊簡單做一個修改封包的範例
原本我們存取 www.exploit-db.com 的請求是 GET / HTTP/2,這邊把他修改成 GET /shellcodes HTTP/2。GET / HTTP/2 > GET /shellcodes HTTP/2
修改完後把請求通過,到瀏覽器看可以看到跑到 Shellcodes 的頁面。
跟攔截請求不同,預設中回應是不會被攔截,需要把設定給打開 Burp 才會主動攔截回應封包。
打開 Proxy settings
找到 Tools > Proxy > Response interception rules
把 Intercept responses based on the following rules 選項給打勾,接著勾選下方需要的規則就可以出去攔截回應了。
跟上面的修改封包的範例一樣發出 GET /shellcodes HTTP/2 請求。
然後伺服器端回應 HTTP/2 200 OK ,200 代表的是 HTTP 的狀態碼,OK 代表的是狀態碼的文字說明,這邊是代表伺服器傳回針對前面的請求封包有成功的意思。
今天介紹了攔截請求/回應,還有進一步對封包做允許通過或丟棄,甚至可以做到修改封包,透過這些技術可以來推敲伺服器針對不同請求做的回應,也可以做到像是 SQL injection 和 Command Injection 等等的測試,總之可以做到的事還有很多,今天只是大概介紹攔截與修改封包怎麼做,而學會怎麼做之後,就可以更進一步學透過修改封包來做些什麼特別的測試,那麼今天就到這邊告一個段落,明天見!